/**
 * 
 */
package de.gee.erep.client.calls.rpc;

import java.util.ArrayList;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

import de.gee.erep.shared.entities.citizen.Citizen;
import de.gee.erep.shared.entities.country.Country;

/**
 * @author Matthew Gee created: 13.03.2011
 */
@RemoteServiceRelativePath("init")
public interface InitializationAsync {

	/**
	 * 
	 * @see de.gee.erep.client.calls.rpc.Initialization#getCountries()
	 * @param callback
	 *            c
	 */
	void getCountries(AsyncCallback<ArrayList<Country>> callback);

	/**
	 * @param start
	 *            s
	 * @param count
	 *            c
	 * @param callback
	 *            call
	 * @see de.gee.erep.client.calls.rpc.Initialization#getCountries(int, int)
	 * 
	 */
	void getCountries(int start, int count,
			AsyncCallback<ArrayList<Country>> callback);

	/**
	 * 
	 * @see de.gee.erep.client.calls.rpc.Initialization#getCountries()
	 * @param callback
	 *            c
	 */
	void getUpdatedCountries(AsyncCallback<ArrayList<Country>> callback);

	/**
	 * @param start
	 *            s
	 * @param count
	 *            c
	 * @param callback
	 *            call
	 * @see de.gee.erep.client.calls.rpc.Initialization#getCountries(int, int)
	 * 
	 */
	void getUpdatedCountries(int start, int count,
			AsyncCallback<ArrayList<Country>> callback);

	/**
	 * @param i
	 * @param asyncCallback
	 */
	void getCitizenOf(int i, AsyncCallback<ArrayList<Citizen>> asyncCallback);

}
